﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="ISettingsStorage.cs" company="DevDigital">
//   DevDigital
// </copyright>
// --------------------------------------------------------------------------------------------------------------------

namespace Settings.NET
{
    /// <summary>
    /// Settings storage
    /// </summary>
    public interface ISettingsStorage
    {
        /// <summary>
        /// Gets the setting.
        /// </summary>
        /// <param name="key">The key.</param>
        /// <param name="scope">The scope.</param>
        /// <returns>The setting</returns>
        ISetting<string> GetSetting(string key, string scope);

        /// <summary>
        /// Sets the setting.
        /// </summary>
        /// <param name="key">The key.</param>
        /// <param name="value">The value.</param>
        /// <param name="scope">The scope.</param>
        void SetSetting(string key, string value, string scope);

        /// <summary>
        /// Removes the setting.
        /// </summary>
        /// <param name="key">The key.</param>
        /// <param name="scope">The scope.</param>
        void RemoveSetting(string key, string scope);
    }
}